package io.lvdaxian.mybatis17.type;

import io.lvdaxian.mybatis17.type.JdbcType;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 表示 设置参数类型的事件
 *
 * @author lihh
 */
public interface TypeHandler<T> {
  /**
   * 设置参数
   */
  void setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType) throws SQLException;
  
  /**
   * 获取结果
   */
  T getResult(ResultSet rs, String columnName) throws SQLException;
  
  /**
   * 取得结果
   */
  T getResult(ResultSet rs, int columnIndex) throws SQLException;
}
